package com.chengyu.eyc.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

import com.chengyu.eyc.utils.EycGenId;

import tk.mybatis.mapper.annotation.KeySql;

@Table(name = "eyc_user_coupon")
public class EycUserCoupon extends BaseModel implements Serializable {

    private static final long serialVersionUID = 1L;

    @KeySql(genId = EycGenId.class)
    @Id
    @Column(name = "EYC_COUPON_ID")
    private String eycCouponId;

    /**
     * 优惠券号
     */
    @Column(name = "COUPON_NUM")
    private String couponNum;

    /**
     * 优惠券代码
     */
    @Column(name = "TYPE_CDE")
    private String typeCde;

    /**
     * 优惠券类型
     */
    @Column(name = "TYPE_NME")
    private String typeNme;

    @Column(name = "SUB_TYPE_CDE")
    private String subTypeCde;

    @Column(name = "SUB_TYPE_NME")
    private String subTypeNme;

    /**
     * 归属客户
     */
    @Column(name = "USER_ID")
    private String userId;

    /**
     * 领取时间
     */
    @Column(name = "RECIICED_TIME")
    private Date reciicedTime;

    /**
     * 失效日期(空表示永久有效)
     */
    @Column(name = "EXPIRATION_DT")
    private Date expirationDt;

    /**
     * 金额
     */
    @Column(name = "AMOUNT")
    private Integer amount;

    @Column(name = "IS_USE")
    private Boolean isUse;

    /**
     * 说明
     */
    @Column(name = "REMARK")
    private String remark;

    /**
     * 获取金额
     *
     * @return AMOUNT - 金额
     */
    public Integer getAmount() {
        return amount;
    }

    /**
     * 获取优惠券号
     *
     * @return COUPON_NUM - 优惠券号
     */
    public String getCouponNum() {
        return couponNum;
    }

    /**
     * 获取失效日期(空表示永久有效)
     *
     * @return EXPIRATION_DT - 失效日期(空表示永久有效)
     */
    public Date getExpirationDt() {
        return expirationDt;
    }

    /**
     * @return EYC_COUPON_ID
     */
    public String getEycCouponId() {
        return eycCouponId;
    }

    /**
     * @return IS_USE
     */
    public Boolean getIsUse() {
        return isUse;
    }

    /**
     * 获取领取时间
     *
     * @return RECIICED_TIME - 领取时间
     */
    public Date getReciicedTime() {
        return reciicedTime;
    }

    /**
     * 获取说明
     *
     * @return REMARK - 说明
     */
    public String getRemark() {
        return remark;
    }

    /**
     * @return SUB_TYPE_CDE
     */
    public String getSubTypeCde() {
        return subTypeCde;
    }

    /**
     * @return SUB_TYPE_NME
     */
    public String getSubTypeNme() {
        return subTypeNme;
    }

    /**
     * 获取优惠券代码
     *
     * @return TYPE_CDE - 优惠券代码
     */
    public String getTypeCde() {
        return typeCde;
    }

    /**
     * 获取优惠券类型
     *
     * @return TYPE_NME - 优惠券类型
     */
    public String getTypeNme() {
        return typeNme;
    }

    /**
     * 获取归属客户
     *
     * @return USER_ID - 归属客户
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 设置金额
     *
     * @param amount 金额
     */
    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    /**
     * 设置优惠券号
     *
     * @param couponNum 优惠券号
     */
    public void setCouponNum(String couponNum) {
        this.couponNum = couponNum == null ? null : couponNum.trim();
    }

    /**
     * 设置失效日期(空表示永久有效)
     *
     * @param expirationDt 失效日期(空表示永久有效)
     */
    public void setExpirationDt(Date expirationDt) {
        this.expirationDt = expirationDt;
    }

    /**
     * @param eycCouponId
     */
    public void setEycCouponId(String eycCouponId) {
        this.eycCouponId = eycCouponId == null ? null : eycCouponId.trim();
    }

    /**
     * @param isUse
     */
    public void setIsUse(Boolean isUse) {
        this.isUse = isUse;
    }

    /**
     * 设置领取时间
     *
     * @param reciicedTime 领取时间
     */
    public void setReciicedTime(Date reciicedTime) {
        this.reciicedTime = reciicedTime;
    }

    /**
     * 设置说明
     *
     * @param remark 说明
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * @param subTypeCde
     */
    public void setSubTypeCde(String subTypeCde) {
        this.subTypeCde = subTypeCde == null ? null : subTypeCde.trim();
    }

    /**
     * @param subTypeNme
     */
    public void setSubTypeNme(String subTypeNme) {
        this.subTypeNme = subTypeNme == null ? null : subTypeNme.trim();
    }

    /**
     * 设置优惠券代码
     *
     * @param typeCde 优惠券代码
     */
    public void setTypeCde(String typeCde) {
        this.typeCde = typeCde == null ? null : typeCde.trim();
    }

    /**
     * 设置优惠券类型
     *
     * @param typeNme 优惠券类型
     */
    public void setTypeNme(String typeNme) {
        this.typeNme = typeNme == null ? null : typeNme.trim();
    }

    /**
     * 设置归属客户
     *
     * @param userId 归属客户
     */
    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", eycCouponId=").append(eycCouponId);
        sb.append(", couponNum=").append(couponNum);
        sb.append(", typeCde=").append(typeCde);
        sb.append(", typeNme=").append(typeNme);
        sb.append(", subTypeCde=").append(subTypeCde);
        sb.append(", subTypeNme=").append(subTypeNme);
        sb.append(", userId=").append(userId);
        sb.append(", reciicedTime=").append(reciicedTime);
        sb.append(", expirationDt=").append(expirationDt);
        sb.append(", amount=").append(amount);
        sb.append(", isUse=").append(isUse);
        sb.append(", remark=").append(remark);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}